1. Technical Field
The present invention relates in general to an enhanced cache replacement scheme and in particular to an enhanced cache replacement scheme for utilization in a network server. Still more particularly the present invention relates to a cache replacement scheme which temporarily exempts selected objects from replacement within the cache based upon some preselected criterion.
2. Description of the Related Art
The information content of the world we live in is growing at a geometric rate. The total amount of documents and knowledge available to the average citizen of the United States utilizing a computer is truly enormous. Documents, data and other information may be distributed over a large geographic area in a so-called wide area network. The most common of these wide area networks is the so-called World Wide Web. The World Wide Web is the total set of inter link hypertext documents which reside on HTTP servers all around the world. An HTTP server is a server software system which utilizes the Hypertext Transfer Protocol to serve up HTML (Hypertext Markup Language) documents and any associated files and scripts when requested by a client, typically using a so-called web browser. The connection between the client and server is usually broken after the requested document or file has been served.
Documents on the World Wide Web called pages or web pages are identified by a Uniform Resource Locator (URL) which specifies the particular machine and path name by which a file can be accessed, and transmitted from node to node to the end user under HTTP. Codes, called tags, embedded in HTML document associate particular words or images in the document with other URLs so that a user can access another file, which may be half way around the world, at the press of a key or the click of a mouse. These files or objects may contain text (in a variety of fonts and styles), graphics images, moving files, and sounds as well as Java applets, ActiveX controls, or other small embedded software programs that execute when the user activates them by clicking on a link. Java is an object-oriented programing language developed by Sun Microsystems, Inc. ActiveX is a set of technologies which enable software components to interact with one another in a network environment, regardless of the language in which the components were created. ActiveX, which was developed as a proposed standard by Microsoft in the mid 1990s, is currently administered by the Open Group and is built upon Microsoft""s Component Object Model.
Thus, a user visiting a web page may be able to download files from a site and send messages to other users via e-mail by utilizing links on the web page.
In order to enhance the efficiency with which web page or other objects may be retrieved from the World Wide Web servers within this network typically employ a cache memory. A cache is a special memory subsystem in which frequently utilized data values are duplicated for quick access. A cache memory stores the content of frequently accessed locations and the addresses where those data items are stored. Thereafter, when a server references an address within the World Wide Web, the cache can check to determine whether or not the web page at that address is within the cache. If the cache does contain the web page at that address, the web page or other object is then returned to the server. If not, access through regular web channels occurs.
The cache memory associated with a network or web server is typically at least 200 megabytes in size; however, those skilled in this art will appreciate that complex web pages or other objects may contain a significant amount of data and thus, it is important that an efficient replacement scheme be utilized to determine which objects should be maintained within the cache memory associated with a network server at any given time.
Well known and conventional cache replacement algorithms are known to those having skill in this art. For example, one technique for determining which object within a cache to replace is the so-called xe2x80x9cLeast Recently Utilizedxe2x80x9d (LRU) algorithm whereby the object within the cache memory which has least recently been utilized is the object selected for replacement when a new object or web page must be stored within the cache. Cache developers are continually attempting to refine these algorithms to increase the efficient utilization of cache memory.
It should therefore be apparent that a need exists for a method and system for enhancing the efficiency of the utilization of cache memory.
It is therefore one object of the present invention to provide an enhanced cache replacement scheme.
It is another object of the present invention to provide an enhanced cache replacement scheme for utilization in a network server.
It is yet another object of the present invention to provide an enhanced cache replacement scheme which temporarily exempts selected objects from replacement within the cache based upon determined criterion.
The foregoing objects are achieved as is now described. A method and system are disclosed for an enhanced cache replacement efficiency in a cache which is associated with a server in a wide area network having a multiple servers and clients. Objects or web pages retrieved from the network by a server are stored within a cache associated with the server and selected objects are designated as temporarily exempt from replacement based upon a preselected criterion, such as the size of the object or a mandated quality of service (QOS) for the particular client which requested the object. After the cache is full or nearly full, subsequently retrieved objects are stored by casting out one or more objects which are not exempt from replacement according to a specified replacement algorithm, such as xe2x80x9cLeast Recently Utilized,xe2x80x9d or by casting out any object or objects according to a specified replacement algorithm, if all objects in the cache are designated as exempt from replacement.